function serItem(key: string, value: any, exp: number = 0): void {
    // 设置存储项的过期时间，默认为0（永不过期）
    let expDate = 0
    if (exp == 0) {
        expDate = 0
    } else {
        expDate = Date.now() + exp * 24 * 60 * 60 * 1000
    }
    // 将值和过期时间存入localStorage，值以JSON字符串形式存储
    localStorage.setItem(key, JSON.stringify({ value, exp: expDate }))
}

function getItem(key: string): any {
    // 从localStorage获取存储项
    const item = localStorage.getItem(key)
    // 检查存储项是否存在且格式正确
    if (item && typeof item == 'string' && item.startsWith('{')) {
        const { value, exp } = JSON.parse(item)
        // 检查存储项是否过期
        if (exp == 0 || exp > Date.now()) {
            return value
        } else {
            // 如果过期，移除该存储项
            localStorage.removeItem(key)
        }
    }
    // 如果存储项不存在或已过期，返回null
    return null
}

function removeItem(key: string): void {
    // 从localStorage中移除指定的存储项
    localStorage.removeItem(key)
}

function clear(): void {
    // 清空localStorage
    localStorage.clear()
}

export { serItem, getItem, removeItem, clear }